package br.com.as.dominio;

import java.io.Serializable;


/**
 * Classe que possui os atributos vinculando tela com base de dados.
 * 
 * @author msante
 *
 */
public class ItemVenda implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = -8537269919120269976L;
	private Long id;
	private Double precoUnitario;
	private Double quantidade;
	private Double percentualDesconto;
	private Double precoTotal;
	private Venda venda;
	private Produto produto;

	public ItemVenda clone () {
		ItemVenda i = new ItemVenda();
		i.setId(id);
		i.setPrecoUnitario(precoUnitario);
		i.setQuantidade(quantidade);
		i.setPercentualDesconto(percentualDesconto);
		i.setPrecoTotal(precoTotal);
		i.setVenda(venda);
		i.setProduto(produto);
		return i;
	}
	
	public ItemVenda() {
		venda = new Venda();
		produto = new Produto();
		percentualDesconto = 0.00;
		quantidade = 0D;
	}
	
	public Double getPercentualDesconto() {
		return percentualDesconto;
	}

	public void setPercentualDesconto(Double percentualDesconto) {
		this.percentualDesconto = percentualDesconto;
	}

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public Double getPrecoUnitario() {
		return precoUnitario;
	}

	public void setPrecoUnitario(Double precoUnitario) {
		this.precoUnitario = precoUnitario;
	}

	public Double getQuantidade() {
		return quantidade;
	}

	public void setQuantidade(Double quantidade) {
		this.quantidade = quantidade;
	}

	public Double getPrecoTotal() {
		return precoTotal;
	}

	public void setPrecoTotal(Double precoTotal) {
		this.precoTotal = precoTotal;
	}

	public Venda getVenda() {
		return venda;
	}

	public void setVenda(Venda venda) {
		this.venda = venda;
	}

	public Produto getProduto() {
		return produto;
	}

	public void setProduto(Produto produto) {
		this.produto = produto;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((id == null) ? 0 : id.hashCode());
		return result;
	}
	
	@Override
	public boolean equals(Object obj) {
		if (this == obj) return true;
		if (obj == null) return false;
		if (getClass() != obj.getClass()) return false;
		ItemVenda other = (ItemVenda) obj;
		if (id == null) {
			if (other.id != null) return false;
		} else if (!id.equals(other.id)) return false;
		return true;
	} 
	
}
